﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using Box.Entities;

namespace Box.Repository.Mapping
{
    public class PagoCompraMap : EntityTypeConfiguration<PagoCompra>
    {
        public PagoCompraMap()
        {
            this.HasKey(e => e.Id);

            this.Property(e => e.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

            this.Property(e => e.MontoPagar)
                .HasColumnType("decimal")
                .IsRequired();

            this.Property(e => e.FechaPagoCuota)
                .HasColumnType("datetime2")
                .IsRequired();
            this.Property(e => e.archivo)
                .IsOptional();
            this.Property(e => e.Estado)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();

            //Relaciones
            this.HasRequired(a => a.Compra)
                .WithMany(a => a.PagosEvento)
                .HasForeignKey(a => a.CompraId)
                .WillCascadeOnDelete(true);//es true porque cuando se borra un evento tambien se borran las actividades

            //this.HasRequired(a => a.Proveedor)
            //    .WithMany(a => a.IcPagCompras)
            //    .HasForeignKey(a => a.ProveedorId)
            //    .WillCascadeOnDelete(false);
        }
    }
}
